The background description provided here is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Distributed data storage and computing systems are often used by enterprises to add computing and storage capacity as needed without requiring the enterprise to build out the infrastructure in advance. For example, cloud service providers rent data storage and computing resources (such as physical machines, virtual machines and containers) to tenants. Examples of data that is stored include unstructured user files or blobs, tables (structured storage) and queues (message delivery). To provide the cloud services, cloud service providers typically employ one or more data centers that include clusters of server racks. Each of the server racks generally includes a switch, a plurality of servers, and/or data storage devices.
Tenants use the computing resources and data storage in a variety of different ways. Some tenants simply use the data storage provided by the cloud network. Other tenants use both the computing resources and the data storage provided by the cloud network. Examples uses include web hosting, social networking, and/or enterprise support.
Distributed data storage systems serve as an important infrastructure for the data storage. The distributed data storage systems provide clusters of storage devices and servers to manage storage. Tenants share the same distributed data storage systems. The sharing of the distributed data storage systems helps to reduce the cost for each user. However, users in the same distributed data storage systems may adversely impact one another, especially when they are operating the storage system extensively.
When data traffic of an account spikes, resources of the distributed data storage systems that are pre-allocated to the users are strained. Some distributed data storage systems can react to the increased traffic volume and increase the allocated resources when heavy traffic occurs to provide load balancing. However, the distributed data storage systems need time to increase resources to meet the variable demand. In addition, when the load balancing system responds to the traffic spike, it is already too late and damage to the distributed data storage system may have already occurred.